命令行工具常用bash、python、ruby等语言编写,其实用node.js和CoffeeScript编写也很方便,特别是涉及I/O相关操作的工具。本文介绍一些基本的知识。
shebang
和别的脚本一样,开头加上shebang:
#!/usr/bin/env coffee
console.log("Hello world!")
命令行参数
通过process.argv
获取。
前两个会是coffee
和脚本名,所以常用process.argv[2..]
。
复杂的命令行参数手工处理是很痛苦的,所以有很多模块做这个。最常用的是optimist。
Exit Code
进程的exit code可以通过process.exit
获取。
if err
process.exit(1)
else
process.exit(0)
管道
管道是非常强大的,node.js支持管道无压力。
process.stdin.resume()
process.stdin.setEncoding('utf8')
process.stdin.on('data', (data) ->
process.stdout.write(data))
UNIX signals
处理UNIX signal:
process.stdin.resume()
process.on('SIGINT', ->
console.log('Got a SIGINT. Bye.')
process.exit(0)
从上面的例子看到用Node.js编写命令行脚本还是蛮方便的,特别是涉及到I/O的任务,可以充分发挥Node.js异步处理的优势。CoffeeScript语法非常简洁,用来编写脚本再适合不过。
撰文 SegmentFault
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。